#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
//package ${package}.${parentArtifactId}.utils;
//
//import Group;
//import Role;
//import ConstEnum;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import io.jsonwebtoken.Claims;
//import io.jsonwebtoken.Jwts;
//import lombok.Data;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.web.context.request.RequestContextHolder;
//import org.springframework.web.context.request.ServletRequestAttributes;
//
//import javax.servlet.http.HttpServletRequest;
//import java.util.Base64;
//import java.util.List;
//
///**
// * Description: jwt的工具类
// *
// * @author YWH
// * @date 2019/8/6 15:28
// *
// * <pre>
// *              ${copyright}
// *      Copyright (c) 2019. All Rights Reserved.
// * </pre>
// */
//@Slf4j
//@Data
//public class JwtTokenUtil {
//
//    private static final String SECRET = ConstEnum.TOKE_SECRET.getDescript();
//
//    /**
//     * Description:
//     * <获取请求中的token>
//     * @author ywh
//     * @date 15:33 2019/8/8
//     * @return java.lang.String
//     **/
//    public static String getToken(){
//        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//        HttpServletRequest request = servletRequestAttributes.getRequest();
//        String authorization = request.getHeader("Authorization");
//        return authorization.split(" ")[1];
//    }
//
//    /**
//     * Description:
//     * <从令牌中获取数据声明>
//     * @author ywh
//     * @date 15:33 2019/8/8
//     * @param token 1
//     * @return io.jsonwebtoken.Claims
//     **/
//    private static Claims getClaimsFromToken(String token) {
//        Claims claims;
//        String key = Base64.getEncoder().encodeToString(SECRET.getBytes());
//        try {
//            claims = Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody();
//        } catch (Exception e) {
//            e.printStackTrace();
//            claims = null;
//        }
//        return claims;
//    }
//
//    /**
//     * Description:
//     * <从令牌中获取声明信息>
//     * @author ywh
//     * @date 15:33 2019/8/8
//     * @return io.jsonwebtoken.Claims
//     **/
//    public static Claims getClaimsFromToken() {
//        Claims claims;
//        String key = Base64.getEncoder().encodeToString(SECRET.getBytes());
//        try {
//            claims = Jwts.parser().setSigningKey(key).parseClaimsJws(getToken()).getBody();
//        } catch (Exception e) {
//            e.printStackTrace();
//            claims = null;
//        }
//        return claims;
//    }
//
//    /**
//     * Description:
//     * <从令牌中获取用户id>
//     * @author ywh
//     * @date 15:34 2019/8/8
//     * @return java.lang.Long
//     **/
//    public static Long getUserIdFromToken() {
//        Claims claims = getClaimsFromToken(getToken());
//        return (Long) claims.get("id");
//    }
//
//    /**
//     * Description:
//     * <获取用户所在组织>
//     * @author ywh
//     * @return Group
//     **/
//    public static Group getUserGroupFromToken(){
//        Claims claims = getClaimsFromToken(getToken());
//        List<Group> groups = (List<Group>) claims.get("groupArrayList");
//        return JSONObject.parseObject(JSON.toJSONString(groups.get(0)),Group.class);
//    }
//
//    /**
//     * Description:
//     * <获取用户Id废弃>
//     * @author 吴盼华
//     * @date 15:34 2019/8/8
//     * @param token 1
//     * @return java.lang.Long
//     **/
//    @Deprecated
//    public static Long getUserIdFromToken(String token) {
//        Claims claims = getClaimsFromToken(token);
//        Long userId = (Long) claims.get("id");
//        return userId;
//    }
//
//    /**
//     * Description:
//     * <从令牌中获取用户角色>
//     * @author ywh
//     * @date 15:35 2019/8/8
//     * @return java.util.List<Role>
//     **/
//    public static List<Role> getRoleListFromToken(){
//        Claims claims = getClaimsFromToken(getToken());
//        return (List<Role>) claims.get("roleArrayList");
//    }
//
//
//}
